<template>
  <view class="userLayout pageBg" v-if="userInfo">
    <view :style="{ height: getNavBarHeight() + 'px' }"></view>
    <view class="userInfo">
      <view class="avatar" @click="onLogin">
        <image
          :src="userBaseInfo ? userBaseInfo.avatarUrl : '../../static/logo.png'"
          mode="aspectFill"></image>
      </view>
      <view class="ip">{{ userInfo.IP }}</view>
      <!-- <view class="ip" @click="onLogin" v-if="!userBaseInfo">请登录</view> -->
      <!-- <view class="ip" v-if="userBaseInfo">{{ userBaseInfo.nickName }}</view> -->
      <view class="address" v-if="userBaseInfo">
        <!-- {{ userBaseInfo.province }} - {{ userBaseInfo.city }} -->
        来自于：{{
          userInfo.address.city ||
          userInfo.address.province ||
          userInfo.address.country
        }}
      </view>
    </view>
    <view class="section">
      <view class="list">
        <view class="row" @click="toClassifyDetail('download', '我的下载')">
          <view class="left">
            <uni-icons type="download-filled" size="24"></uni-icons>
            <view class="text">我的下载</view>
          </view>
          <view class="right">
            <view class="text">{{ userInfo.downloadSize }}</view>
            <uni-icons type="right" size="15" color="#aaa"></uni-icons>
          </view>
        </view>
        <view class="row" @click="toClassifyDetail('score', '我的评分')">
          <view class="left">
            <uni-icons type="star-filled" size="24"></uni-icons>
            <view class="text">我的评分</view>
          </view>
          <view class="right">
            <view class="text">{{ userInfo.scoreSize }}</view>
            <uni-icons type="right" size="15" color="#aaa"></uni-icons>
          </view>
        </view>
        <view class="row">
          <view class="left">
            <uni-icons type="chatboxes-filled" size="24"></uni-icons>
            <view class="text">联系客服</view>
          </view>
          <view class="right">
            <view class="text"></view>
            <uni-icons type="right" size="15" color="#aaa"></uni-icons>
          </view>
          <!-- #ifdef MP -->
          <button open-type="contact">联系客服</button>
          <!-- #endif -->
          <!-- #ifdef H5 -->
          <button @click="callPhone">拨打电话</button>
          <!-- #endif -->
        </view>
      </view>
    </view>
    <view class="section">
      <view class="list">
        <navigator
          url="/pages/notice/detail?id=653507c6466d417a3718e94b"
          class="row">
          <view class="left">
            <uni-icons type="notification-filled" size="24"></uni-icons>
            <view class="text">订阅更新</view>
          </view>
          <view class="right">
            <view class="text"></view>
            <uni-icons type="right" size="15" color="#aaa"></uni-icons>
          </view>
        </navigator>
        <navigator
          url="/pages/notice/detail?id=6536358ce0ec19c8d67fbe82"
          class="row">
          <view class="left">
            <uni-icons type="flag-filled" size="24"></uni-icons>
            <view class="text">常见问题</view>
          </view>
          <view class="right">
            <view class="text"></view>
            <uni-icons type="right" size="15" color="#aaa"></uni-icons>
          </view>
        </navigator>
      </view>
    </view>
  </view>

  <view class="loadingLayout" v-else>
    <view :style="{ height: getNavBarHeight() + 'px' }"></view>
    <uni-load-more status="loading"></uni-load-more>
  </view>
</template>

<script setup>
import { getNavBarHeight } from "@/utils/system.js";
import { apiGetUserInfo, apiGetUserWallList } from "@/api/apis.js";
import { onLoad } from "@dcloudio/uni-app";
import { ref } from "vue";
const userBaseInfo = ref(null);
const onLogin = () => {
  if (userBaseInfo.value) return;
  uni.showLoading({
    title: "登录中...",
  });
  uni.getUserProfile({
    desc: "用于完善用户资料",
    success: (userRes) => {
      console.log("getUserProfile:", userRes);
      if (userRes.errMsg == "getUserProfile:ok") {
        userBaseInfo.value = userRes.userInfo;
      }
    },
    fail: (err) => {
      console.log("getUserProfile.err:", err);
    },
    complete() {
      uni.hideLoading();
    },
  });
};
const callPhone = () => {
  uni.makePhoneCall({
    phoneNumber: "18971552690",
  });
};
const toClassifyDetail = (type, name) => {
  uni.navigateTo({
    url: `/pages/classify-detail/classify-detail?name=${name}&type=${type}`,
  });
};
const userInfo = ref(null);
const getUserInfo = async () => {
  let res = await apiGetUserInfo();
  userInfo.value = res.data;
};
onLoad(() => {
  getUserInfo();
});
</script>

<style lang="scss" scoped>
.userLayout {
  .userInfo {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    padding: 50rpx 0;

    .avatar {
      width: 160rpx;
      height: 160rpx;
      border-radius: 50%;
      overflow: hidden;

      image {
        width: 100%;
        height: 100%;
      }
    }

    .ip {
      font-size: 40rpx;
      color: #666;
      padding: 20rpx 0 5rpx;
    }

    .address {
      font-size: 28rpx;
      color: #aaa;
    }
  }

  .section {
    width: 690rpx;
    margin: 50rpx auto;
    border: 1px solid #eee;
    border-radius: 10rpx;
    box-shadow: 0 0 30rpx rgba(0, 0, 0, 0.5);

    .list {
      .row {
        display: flex;
        justify-content: space-between;
        align-items: center;
        position: relative; // 相对位置
        padding: 0 30rpx;
        height: 100rpx;
        border-bottom: 1px solid #eee;
        background: #fff;

        &:last-child {
          border-bottom: 0;
        }

        :deep() {
          .uni-icons {
            color: $brand-theme-color !important;
          }
        }

        .left {
          display: flex;
          align-items: center;

          .text {
            padding-left: 20rpx;
            color: #666;
          }
        }

        .right {
          display: flex;
          align-items: center;

          .text {
            font-size: 28rpx;
            color: #aaa;
          }
        }

        button {
          position: absolute;
          top: 0;
          left: 0;
          height: 100rpx;
          width: 100%;
          opacity: 0; // 透明度
        }
      }
    }
  }
}
</style>
